#!/bin/bash

# 定义颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # 无颜色

# 定义项目根目录
PROJECT_ROOT="$(cd "$(dirname "$0")/../../" && pwd)"
cd "$PROJECT_ROOT"

echo -e "${YELLOW}=== 开始构建 WVP-GB28181-Pro 项目 ===${NC}"

# 检查Maven是否已安装
if ! command -v mvn &> /dev/null; then
    echo -e "${RED}错误: 未找到Maven。请先安装Maven再运行此脚本。${NC}"
    exit 1
fi

# 显示Maven版本
echo -e "${YELLOW}Maven版本:${NC}"
mvn -v

# 清理之前的构建
echo -e "${YELLOW}清理之前的构建...${NC}"
mvn clean

# 跳过测试构建
echo -e "${YELLOW}开始编译打包...${NC}"
mvn package -Dmaven.test.skip=true

# 检查构建结果
if [ $? -eq 0 ]; then
    # 查找生成的jar包
    JAR_FILE=$(find "$PROJECT_ROOT/target" -name "*.jar" -not -name "*sources*" -not -name "*javadoc*" | head -n 1)
    
    if [ -n "$JAR_FILE" ]; then
        JAR_SIZE=$(du -h "$JAR_FILE" | cut -f1)
        echo -e "${GREEN}构建成功! JAR文件位置:${NC} $JAR_FILE (大小: $JAR_SIZE)"
        
        # 创建一个用于部署的目录
        DEPLOY_DIR="$PROJECT_ROOT/deploy"
        mkdir -p "$DEPLOY_DIR"
        
        # 复制jar文件和配置文件到部署目录
        cp "$JAR_FILE" "$DEPLOY_DIR/wvp-gb28181-pro.jar"
        cp "$PROJECT_ROOT/src/main/resources/application.yml" "$DEPLOY_DIR/"
        cp "$PROJECT_ROOT/src/main/resources/logback-spring.xml" "$DEPLOY_DIR/"
        
        echo -e "${GREEN}部署文件已经准备好:${NC} $DEPLOY_DIR"
        echo -e "${YELLOW}运行方式:${NC} java -jar $DEPLOY_DIR/wvp-gb28181-pro.jar"
    else
        echo -e "${RED}构建似乎成功，但无法找到生成的JAR文件。${NC}"
        exit 1
    fi
else
    echo -e "${RED}构建失败，请检查上述错误信息。${NC}"
    exit 1
fi 